#include <iostream>
#include <stdlib.h>
#include <string>

#include "Parser.h"

#define NOMBRE_LAZO_VIAS "lazo_cantidad_vias"
#define PRIMEROS_BLOQUES_VIAS "main"

int calcularCantidadVias(Parser* parser, int tamanioCache, int tamanioBloque, std::string d1) {
  int cantidadVias= 1;
  do {
    std::string parametros(intToString(cantidadVias) + " " + intToString(tamanioCache));
    if(llamadaValgrind(NOMBRE_LAZO_VIAS, parametros, d1) != -1) {	
      parser->parsear(SALIDA_CGANNOTATE, PRIMEROS_BLOQUES_VIAS);     
      cantidadVias*= 2;
    } else {
      cantidadVias= -1;
      break;
    }
  } while(parser->get_d1mw_ciclo() == 0); 
  
  return(cantidadVias/4);
}
